package dto

import (
	"fmt"
	"github.com/spf13/cast"
	"strings"
)

type RegionItem struct {
	Name       string `json:"name"`
	Code       string `json:"code"`        // 行政区域代码
	ParentCode string `json:"parent_code"` //上级行政区域码
	Level      int    `json:"level"`       //行政等级，从1开始
	LevelName  string `json:"level_name"`  //等级名称
}

func DecodeRegionItem(s string) RegionItem {
	arr := strings.Split(s, ",")
	d := RegionItem{}
	if len(arr) > 0 {
		d.Code = arr[0]
	}
	if len(arr) > 1 {
		d.Name = arr[1]
	}
	if len(arr) > 2 {
		d.ParentCode = arr[2]
	}
	if len(arr) > 3 {
		d.Level = cast.ToInt(arr[3])
	}
	return d
}

func EncodeRegionItem(d RegionItem) string {
	return strings.Join([]string{
		d.Code, d.Name, d.ParentCode, fmt.Sprint(d.Level),
	}, ",")
}
